from 工程.凌云项目.XCL激励模块.基础配置.参数配置 import *


def 耦合小信号测试初始化():
    模块编号 = str(sys.UUTINFO[1])
    if gy参数.初始化标识 != '耦合小信号测试初始化'+模块编号:
        gy参数.初始化标识='耦合小信号测试初始化'+模块编号
    else:
        return
    gy产品.模块电源.连接()
    gy产品.模块异步串口.连接()
    gy产品.模块离散接口.连接()
    gy产品.模块CAN总线.连接()
    gy仪器.频谱仪.连接()
    gy仪器.信号源.连接()
    gy产品.射频路由.连接()
    gy方法.时间处理.延时(0.5)
    gy产品.模块CAN总线.设置发射使能('停止', 1)
    gy仪器.信号源.射频开关('关')
    gy仪器.信号源.设置外调制源('外')
    gy仪器.信号源.设置外调制模式('开')
    gy仪器.信号源.设置幅度dBm(-2 + gy参数.信号源输出补偿)
    gy仪器.频谱仪.设置扫频带宽(20e6)
    gy仪器.频谱仪.设置视频带宽(20e6)
    gy仪器.频谱仪.设置分析带宽(0.2e6)
    gy仪器.频谱仪.设置功率单位('DBM')
    gy仪器.频谱仪.设置参考幅度(10)
    gy仪器.频谱仪.设置触发源IMM()
    gy仪器.频谱仪.设置自动衰减()
    gy仪器.频谱仪.设置触发开关('开')
    gy仪器.频谱仪.设置内部增益开关(1)

    gy产品.射频路由.接通信号源到激励()
    gy产品.射频路由.接通经衰减器输出到频谱仪()

    gy产品.模块CAN总线.设置发射使能('发射', 1)
    print('耦合小信号测试初始化完成')

def 耦合小信号测试(工作频点=1025):
    '''
    :param 工作频点:1025,1030,1150 ,0-抽测频点
    :param 工作模式: 高斯、cos
    :return:
    '''
    耦合小信号测试初始化()
    gy仪器.信号源.射频开关('关')
    gy产品.模块电源.设置电流(gy参数.发射电流高限)
    gy产品.射频路由.接通经衰减器输出到频谱仪()
    工作频点=工作频点*1000000

    gy产品.模块CAN总线.设置功放模式('模式2')
    gy产品.模块异步串口.设置波形模式五()  # 占空比4%
    抽测频点值=None
    if 工作频点==0:
        随机值=gy方法.随机数.产生随机整数(1,2)
        随机频点=gy参数.耦合小信号随机频点[随机值]
        抽测频点值 = 随机频点
        工作频点=随机频点*1000000
    gy仪器.信号源.设置频率(工作频点)

    gy仪器.频谱仪.设置扫频带宽(20e6)
    gy仪器.频谱仪.设置中心频率(工作频点)
    gy仪器.频谱仪.设置触发开关('开')
    gy仪器.频谱仪.设置最大保持开关('开')
    gy仪器.频谱仪.设置参考幅度(20)

    gy方法.时间处理.延时(1)
    gy产品.模块电源.设置电流(gy参数.发射电流高限)
    gy仪器.信号源.射频开关('开')
    gy方法.时间处理.延时(1)
    gy产品.模块CAN总线.设置功放模式('模式4')
    gy仪器.频谱仪.设置最大保持开关('关')
    gy仪器.频谱仪.设置最大保持开关('开')
    gy方法.时间处理.延时(2)

    gy仪器.频谱仪.设置寻峰值()
    峰值 = gy仪器.频谱仪.读幅度()
    电流 = gy产品.模块电源.回读电流()
    if 峰值 < -40 and 电流 <0.6:
        gy产品.射频路由.接通经20db衰减到频谱仪()
        gy仪器.频谱仪.设置参考幅度(-40)
        gy仪器.频谱仪.设置最大保持开关('关')
        gy仪器.频谱仪.设置最大保持开关('开')
        gy仪器.频谱仪.设置触发开关('开')

        gy方法.时间处理.延时(2)
        gy仪器.频谱仪.设置寻峰值()
        峰值 = gy仪器.频谱仪.读幅度()


    耦合小信号=峰值 + gy参数.耦合小信号补偿
    gy仪器.信号源.射频开关('关')
    gy产品.模块异步串口.关闭波形输出()
    gy产品.模块CAN总线.设置功放模式('模式2')
    gy方法.时间处理.延时(1)
    gy产品.模块电源.监控模块静态电流(gy参数.静态电流高限)

    gy产品.射频路由.接通经衰减器输出到频谱仪()
    gy方法.测试结果保存.结果保存(耦合小信号, '耦合小信号')
    if 抽测频点值:
        gy方法.测试结果保存.结果保存(抽测频点值, "抽测频点")




if __name__=='__main__':
    pass
    sys.UUTINFO = [0, 1]
    耦合小信号测试()
